package com.lcz.manage.util.event.publisher;

import com.lcz.manage.util.event.event.Event;
import com.lcz.manage.util.event.listener.Listener;
import com.lcz.manage.util.event.publisher.listener.EventCallbackListener;

/**
 * 发送器
 *
 * @author xingyongjiang@yunrong.cn
 * @version V3.0
 * @since 2021/4/19 12:37
 */
public interface EventPublisher {

    /**
     * 发送事件
     *
     * @param event
     */
    void publish(Event event);

    /**
     * 发送事件
     *
     * @param event
     * @param listener
     */
    void publish(Event event, EventCallbackListener listener);

    /**
     * 设置监听器
     *
     * @param listener
     */
    void setListener(Listener listener);
}
